home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / cheevd.z / cheevd
Text File  |  1998-10-30  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHEEEEEEEEVVVVDDDD((((3333FFFF))))                                                          CCCCHHHHEEEEEEEEVVVVDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CHEEVD - compute all eigenvalues and, optionally, eigenvectors of a
  10.      complex Hermitian matrix A
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE CHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK,
  14.                         IWORK, LIWORK, INFO )
  15.  
  16.          CHARACTER      JOBZ, UPLO
  17.  
  18.          INTEGER        INFO, LDA, LIWORK, LRWORK, LWORK, N
  19.  
  20.          INTEGER        IWORK( * )
  21.  
  22.          REAL           RWORK( * ), W( * )
  23.  
  24.          COMPLEX        A( LDA, * ), WORK( * )
  25.  
  26. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  27.      CHEEVD computes all eigenvalues and, optionally, eigenvectors of a
  28.      complex Hermitian matrix A.  If eigenvectors are desired, it uses a
  29.      divide and conquer algorithm.
  30.  
  31.      The divide and conquer algorithm makes very mild assumptions about
  32.      floating point arithmetic. It will work on machines with a guard digit in
  33.      add/subtract, or on those binary machines without guard digits which
  34.      subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or Cray-2. It could
  35.      conceivably fail on hexadecimal or decimal machines without guard digits,
  36.      but we know of none.
  37.  
  38.  
  39. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  40.      JOBZ    (input) CHARACTER*1
  41.              = 'N':  Compute eigenvalues only;
  42.              = 'V':  Compute eigenvalues and eigenvectors.
  43.  
  44.      UPLO    (input) CHARACTER*1
  45.              = 'U':  Upper triangle of A is stored;
  46.              = 'L':  Lower triangle of A is stored.
  47.  
  48.      N       (input) INTEGER
  49.              The order of the matrix A.  N >= 0.
  50.  
  51.      A       (input/output) COMPLEX array, dimension (LDA, N)
  52.              On entry, the Hermitian matrix A.  If UPLO = 'U', the leading N-
  53.              by-N upper triangular part of A contains the upper triangular
  54.              part of the matrix A.  If UPLO = 'L', the leading N-by-N lower
  55.              triangular part of A contains the lower triangular part of the
  56.              matrix A.  On exit, if JOBZ = 'V', then if INFO = 0, A contains
  57.              the orthonormal eigenvectors of the matrix A.  If JOBZ = 'N',
  58.              then on exit the lower triangle (if UPLO='L') or the upper
  59.              triangle (if UPLO='U') of A, including the diagonal, is
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHEEEEEEEEVVVVDDDD((((3333FFFF))))                                                          CCCCHHHHEEEEEEEEVVVVDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              destroyed.
  75.  
  76.      LDA     (input) INTEGER
  77.              The leading dimension of the array A.  LDA >= max(1,N).
  78.  
  79.      W       (output) REAL array, dimension (N)
  80.              If INFO = 0, the eigenvalues in ascending order.
  81.  
  82.      WORK    (workspace/output) COMPLEX array, dimension (LWORK)
  83.              On exit, if LWORK > 0, WORK(1) returns the optimal LWORK.
  84.  
  85.      LWORK   (input) INTEGER
  86.              The length of the array WORK.  If N <= 1,                LWORK
  87.              must be at least 1.  If JOBZ  = 'N' and N > 1, LWORK must be at
  88.              least N + 1.  If JOBZ  = 'V' and N > 1, LWORK must be at least
  89.              2*N + N**2.
  90.  
  91.      RWORK   (workspace/output) REAL array,
  92.              dimension (LRWORK) On exit, if LRWORK > 0, RWORK(1) returns the
  93.              optimal LRWORK.
  94.  
  95.      LRWORK  (input) INTEGER
  96.              The dimension of the array RWORK.  If N <= 1,
  97.              LRWORK must be at least 1.  If JOBZ  = 'N' and N > 1, LRWORK must
  98.              be at least N.  If JOBZ  = 'V' and N > 1, LRWORK must be at least
  99.              1 + 4*N + 2*N*lg N + 3*N**2 , where lg( N ) = smallest integer k
  100.              such that 2**k >= N .
  101.  
  102.      IWORK   (workspace/output) INTEGER array, dimension (LIWORK)
  103.              On exit, if LIWORK > 0, IWORK(1) returns the optimal LIWORK.
  104.  
  105.      LIWORK  (input) INTEGER
  106.              The dimension of the array IWORK.  If N <= 1,
  107.              LIWORK must be at least 1.  If JOBZ  = 'N' and N > 1, LIWORK must
  108.              be at least 1.  If JOBZ  = 'V' and N > 1, LIWORK must be at least
  109.              2 + 5*N.
  110.  
  111.      INFO    (output) INTEGER
  112.              = 0:  successful exit
  113.              < 0:  if INFO = -i, the i-th argument had an illegal value
  114.              > 0:  if INFO = i, the algorithm failed to converge; i off-
  115.              diagonal elements of an intermediate tridiagonal form did not
  116.              converge to zero.
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.